math/big.Int.abs (field)

429 uses

	math/big (current package)
		float.go#L609: 	if len(x.abs) == 0 {
		float.go#L614: 	z.mant = z.mant.set(x.abs)
		float.go#L1113: 			z.abs = z.abs.lsh(x.mant, exp-allBits)
		float.go#L1115: 			z.abs = z.abs.set(x.mant)
		float.go#L1117: 			z.abs = z.abs.rsh(x.mant, allBits-exp)
		float.go#L1153: 			z.a.abs = z.a.abs.lsh(x.mant, uint(x.exp-allBits))
		float.go#L1154: 			z.b.abs = z.b.abs[:0] // == 1 (see Rat)
		float.go#L1157: 			z.a.abs = z.a.abs.set(x.mant)
		float.go#L1158: 			z.b.abs = z.b.abs[:0] // == 1 (see Rat)
		float.go#L1161: 			z.a.abs = z.a.abs.set(x.mant)
		float.go#L1162: 			t := z.b.abs.setUint64(1)
		float.go#L1163: 			z.b.abs = t.lsh(t, uint(allBits-x.exp))
		int.go#L35: 	abs nat  // absolute value of the integer
		int.go#L48: 	if len(x.abs) == 0 {
		int.go#L64: 	z.abs = z.abs.setUint64(uint64(x))
		int.go#L71: 	z.abs = z.abs.setUint64(x)
		int.go#L91: 	return &Int{neg: x < 0, abs: abs}
		int.go#L97: 		z.abs = z.abs.set(x.abs)
		int.go#L112: 	return x.abs
		int.go#L121: 	z.abs = nat(abs).norm()
		int.go#L136: 	z.neg = len(z.abs) > 0 && !z.neg // 0 has no sign
		int.go#L146: 		z.abs = z.abs.add(x.abs, y.abs)
		int.go#L150: 		if x.abs.cmp(y.abs) >= 0 {
		int.go#L151: 			z.abs = z.abs.sub(x.abs, y.abs)
		int.go#L154: 			z.abs = z.abs.sub(y.abs, x.abs)
		int.go#L157: 	z.neg = len(z.abs) > 0 && neg // 0 has no sign
		int.go#L167: 		z.abs = z.abs.add(x.abs, y.abs)
		int.go#L171: 		if x.abs.cmp(y.abs) >= 0 {
		int.go#L172: 			z.abs = z.abs.sub(x.abs, y.abs)
		int.go#L175: 			z.abs = z.abs.sub(y.abs, x.abs)
		int.go#L178: 	z.neg = len(z.abs) > 0 && neg // 0 has no sign
		int.go#L197: 		z.abs = z.abs.sqr(stk, x.abs)
		int.go#L201: 	z.abs = z.abs.mul(stk, x.abs, y.abs)
		int.go#L202: 	z.neg = len(z.abs) > 0 && x.neg != y.neg // 0 has no sign
		int.go#L223: 	z.abs = z.abs.mulRange(nil, uint64(a), uint64(b))
		int.go#L274: 	z.abs, _ = z.abs.div(nil, nil, x.abs, y.abs)
		int.go#L275: 	z.neg = len(z.abs) > 0 && x.neg != y.neg // 0 has no sign
		int.go#L283: 	_, z.abs = nat(nil).div(nil, z.abs, x.abs, y.abs)
		int.go#L284: 	z.neg = len(z.abs) > 0 && x.neg // 0 has no sign
		int.go#L300: 	z.abs, r.abs = z.abs.div(nil, r.abs, x.abs, y.abs)
		int.go#L301: 	z.neg, r.neg = len(z.abs) > 0 && x.neg != y.neg, len(r.abs) > 0 && x.neg // 0 has no sign
		int.go#L327: 	if z == y || alias(z.abs, y.abs) {
		int.go#L358: 	if z == y || alias(z.abs, y.abs) {
		int.go#L387: 		r = x.abs.cmp(y.abs)
		int.go#L404: 	return x.abs.cmp(y.abs)
		int.go#L430: 	v := int64(low64(x.abs))
		int.go#L440: 	return low64(x.abs)
		int.go#L445: 	if len(x.abs) <= 64/_W {
		int.go#L446: 		w := int64(low64(x.abs))
		int.go#L454: 	return !x.neg && len(x.abs) <= 64/_W
		int.go#L460: 	n := x.abs.bitLen() // NB: still uses slow crypto impl!
		int.go#L466: 	if n <= 53 || n < 64 && n-int(x.abs.trailingZeroBits()) <= 53 {
		int.go#L467: 		f := float64(low64(x.abs))
		int.go#L519: 	z.abs = z.abs.setBytes(buf)
		int.go#L531: 	buf := make([]byte, len(x.abs)*_S)
		int.go#L532: 	return buf[x.abs.bytes(buf):]
		int.go#L542: 	x.abs.bytes(buf)
		int.go#L552: 	return x.abs.bitLen()
		int.go#L558: 	return x.abs.trailingZeroBits()
		int.go#L577: 	xWords := x.abs
		int.go#L579: 		if m == nil || len(m.abs) == 0 {
		int.go#L587: 		xWords = inverse.abs
		int.go#L589: 	yWords := y.abs
		int.go#L593: 		if z == m || alias(z.abs, m.abs) {
		int.go#L596: 		mWords = m.abs // m.abs may be nil for m == 0
		int.go#L599: 	z.abs = z.abs.expNN(nil, xWords, yWords, mWords, slow)
		int.go#L600: 	z.neg = len(z.abs) > 0 && x.neg && len(yWords) > 0 && yWords[0]&1 == 1 // 0 has no sign
		int.go#L603: 		z.abs = z.abs.sub(mWords, z.abs) // z == x**y mod |m| && 0 <= z < |m|
		int.go#L622: 	if len(a.abs) == 0 || len(b.abs) == 0 {
		int.go#L623: 		lenA, lenB, negA, negB := len(a.abs), len(b.abs), a.neg, b.neg
		int.go#L668: 	m := len(B.abs) // m >= 2
		int.go#L669: 	n := len(A.abs) // n >= m >= 2
		int.go#L672: 	h := nlz(A.abs[n-1])
		int.go#L673: 	a1 = A.abs[n-1]<<h | A.abs[n-2]>>(_W-h)
		int.go#L677: 		a2 = B.abs[n-1]<<h | B.abs[n-2]>>(_W-h)
		int.go#L679: 		a2 = B.abs[n-2] >> (_W - h)
		int.go#L729: 	z.abs = z.abs.mulAddWW(x.abs, w, 0)
		int.go#L778: 	if A.abs.cmp(B.abs) < 0 {
		int.go#L784: 	for len(B.abs) > 1 {
		int.go#L808: 	if len(B.abs) > 0 {
		int.go#L810: 		if len(A.abs) > 1 {
		int.go#L814: 		if len(B.abs) > 0 {
		int.go#L816: 			aWord, bWord := A.abs[0], B.abs[0]
		int.go#L838: 			A.abs[0] = aWord
		int.go#L876: 	if n.neg || len(n.abs) == 0 {
		int.go#L878: 		z.abs = nil
		int.go#L882: 	z.abs = z.abs.random(rnd, n.abs, n.abs.bitLen())
		int.go#L920: 	return (&Int{abs: z}).ModInverse(&Int{abs: g}, &Int{abs: n}).abs
		int.go#L926: 	if len(y.abs) == 0 || y.abs[0]&1 == 0 {
		int.go#L950: 		if len(a.abs) == 0 {
		int.go#L954: 		if len(a.abs) == 0 {
		int.go#L960: 		s := a.abs.trailingZeroBits()
		int.go#L962: 			bmod8 := b.abs[0] & 7
		int.go#L970: 		if b.abs[0]&3 == 3 && c.abs[0]&3 == 3 {
		int.go#L1025: 	e := s.abs.trailingZeroBits()
		int.go#L1086: 	case p.abs[0]%4 == 3:
		int.go#L1089: 	case p.abs[0]%8 == 5:
		int.go#L1100: 	z.abs = z.abs.lsh(x.abs, n)
		int.go#L1109: 		t := z.abs.sub(x.abs, natOne) // no underflow because |x| > 0
		int.go#L1111: 		z.abs = t.add(t, natOne)
		int.go#L1116: 	z.abs = z.abs.rsh(x.abs, n)
		int.go#L1126: 		if len(x.abs) > 0 {
		int.go#L1127: 			return uint(x.abs[0] & 1) // bit 0 is same for -x
		int.go#L1135: 		t := nat(nil).sub(x.abs, natOne)
		int.go#L1139: 	return x.abs.bit(uint(i))
		int.go#L1152: 		t := z.abs.sub(x.abs, natOne)
		int.go#L1154: 		z.abs = t.add(t, natOne)
		int.go#L1155: 		z.neg = len(z.abs) > 0
		int.go#L1158: 	z.abs = z.abs.setBit(x.abs, uint(i), b)
		int.go#L1168: 			x1 := nat(nil).sub(x.abs, natOne)
		int.go#L1169: 			y1 := nat(nil).sub(y.abs, natOne)
		int.go#L1170: 			z.abs = z.abs.add(z.abs.or(x1, y1), natOne)
		int.go#L1176: 		z.abs = z.abs.and(x.abs, y.abs)
		int.go#L1187: 	y1 := nat(nil).sub(y.abs, natOne)
		int.go#L1188: 	z.abs = z.abs.andNot(x.abs, y1)
		int.go#L1198: 			x1 := nat(nil).sub(x.abs, natOne)
		int.go#L1199: 			y1 := nat(nil).sub(y.abs, natOne)
		int.go#L1200: 			z.abs = z.abs.andNot(y1, x1)
		int.go#L1206: 		z.abs = z.abs.andNot(x.abs, y.abs)
		int.go#L1213: 		x1 := nat(nil).sub(x.abs, natOne)
		int.go#L1214: 		z.abs = z.abs.add(z.abs.or(x1, y.abs), natOne)
		int.go#L1220: 	y1 := nat(nil).sub(y.abs, natOne)
		int.go#L1221: 	z.abs = z.abs.and(x.abs, y1)
		int.go#L1231: 			x1 := nat(nil).sub(x.abs, natOne)
		int.go#L1232: 			y1 := nat(nil).sub(y.abs, natOne)
		int.go#L1233: 			z.abs = z.abs.add(z.abs.and(x1, y1), natOne)
		int.go#L1239: 		z.abs = z.abs.or(x.abs, y.abs)
		int.go#L1250: 	y1 := nat(nil).sub(y.abs, natOne)
		int.go#L1251: 	z.abs = z.abs.add(z.abs.andNot(y1, x.abs), natOne)
		int.go#L1261: 			x1 := nat(nil).sub(x.abs, natOne)
		int.go#L1262: 			y1 := nat(nil).sub(y.abs, natOne)
		int.go#L1263: 			z.abs = z.abs.xor(x1, y1)
		int.go#L1269: 		z.abs = z.abs.xor(x.abs, y.abs)
		int.go#L1280: 	y1 := nat(nil).sub(y.abs, natOne)
		int.go#L1281: 	z.abs = z.abs.add(z.abs.xor(x.abs, y1), natOne)
		int.go#L1290: 		z.abs = z.abs.sub(x.abs, natOne)
		int.go#L1296: 	z.abs = z.abs.add(x.abs, natOne)
		int.go#L1308: 	z.abs = z.abs.sqrt(nil, x.abs)
		intconv.go#L25: 	return string(x.abs.itoa(x.neg, base))
		intconv.go#L34: 	return append(buf, x.abs.itoa(x.neg, base)...)
		intconv.go#L118: 	digits := x.abs.utoa(base)
		intconv.go#L188: 	z.abs, base, _, err = z.abs.scan(r, base, false)
		intconv.go#L192: 	z.neg = len(z.abs) > 0 && neg // 0 has no sign
		intmarsh.go#L22: 	buf := make([]byte, 1+len(x.abs)*_S) // extra byte for version and sign bit
		intmarsh.go#L23: 	i := x.abs.bytes(buf) - 1            // i >= 0
		intmarsh.go#L44: 	z.abs = z.abs.setBytes(buf[1:])
		intmarsh.go#L75: 	return x.abs.itoa(x.neg, 10), nil
		natmul.go#L197: 	x0, x1 := &Int{abs: x[:n2].norm()}, &Int{abs: x[n2:].norm()}
		natmul.go#L198: 	y0, y1 := &Int{abs: y[:n2].norm()}, &Int{abs: y[n2:].norm()}
		natmul.go#L199: 	z0 := &Int{abs: z[0 : 2*n2]}
		natmul.go#L200: 	z2 := &Int{abs: z[2*n2:]}
		natmul.go#L204: 	z1 := &Int{abs: stk.nat(2*n2 + 1)}
		natmul.go#L205: 	tx := &Int{abs: z[0:n2]}
		natmul.go#L206: 	ty := &Int{abs: z[n2 : 2*n2]}
		natmul.go#L217: 	addTo(z[n2:], z1.abs)
		natmul.go#L233: 			trace("x ", &Int{abs: x})
		natmul.go#L234: 			trace("y ", &Int{abs: y})
		natmul.go#L235: 			trace("z ", &Int{abs: z})
		natmul.go#L236: 			trace("zz", &Int{abs: zz})
		natmul.go#L286: 	x0, x1 := &Int{abs: x[:n2].norm()}, &Int{abs: x[n2:].norm()}
		natmul.go#L287: 	z0 := &Int{abs: z[0 : 2*n2]}
		natmul.go#L288: 	z2 := &Int{abs: z[2*n2:]}
		natmul.go#L292: 	z1 := &Int{abs: stk.nat(2*n2 + 1)}
		natmul.go#L293: 	tx := &Int{abs: z[0:n2]}
		natmul.go#L296: 	z1.abs = z1.abs.sqr(stk, tx.abs)
		natmul.go#L300: 	z0.abs = z0.abs.sqr(stk, x0.abs)
		natmul.go#L301: 	z2.abs = z2.abs.sqr(stk, x1.abs)
		natmul.go#L304: 	addTo(z[n2:], z1.abs)
		natmul.go#L321: 			trace("x ", &Int{abs: x})
		natmul.go#L322: 			trace("z ", &Int{abs: z})
		natmul.go#L323: 			trace("zz", &Int{abs: zz})
		prime.go#L39: 	if x.neg || len(x.abs) == 0 {
		prime.go#L48: 	w := x.abs[0]
		prime.go#L49: 	if len(x.abs) == 1 && w < 64 {
		prime.go#L63: 		rA = uint32(x.abs.modW(primesA))
		prime.go#L64: 		rB = uint32(x.abs.modW(primesB))
		prime.go#L66: 		r := x.abs.modW((primesA * primesB) & _M)
		prime.go#L80: 	return x.abs.probablyPrimeMillerRabin(stk, n+1, true) && x.abs.probablyPrimeLucas(stk)
		prime.go#L173: 	intD := &Int{abs: d}
		prime.go#L174: 	intN := &Int{abs: n}
		rat.go#L274: 	b := x.b.abs
		rat.go#L280: 	f, exact = quotToFloat32(stk, x.a.abs, b)
		rat.go#L292: 	b := x.b.abs
		rat.go#L298: 	f, exact = quotToFloat64(stk, x.a.abs, b)
		rat.go#L309: 	babs := b.abs
		rat.go#L313: 	if &z.a == b || alias(z.a.abs, babs) {
		rat.go#L316: 	z.a.abs = z.a.abs.set(a.abs)
		rat.go#L317: 	z.b.abs = z.b.abs.set(babs)
		rat.go#L332: 	z.b.abs = z.b.abs.setUint64(uint64(b))
		rat.go#L339: 	z.b.abs = z.b.abs.setWord(1)
		rat.go#L346: 	z.b.abs = z.b.abs.setWord(1)
		rat.go#L353: 	z.b.abs = z.b.abs.setWord(1)
		rat.go#L363: 	if len(z.b.abs) == 0 {
		rat.go#L364: 		z.b.abs = z.b.abs.setWord(1)
		rat.go#L379: 	z.a.neg = len(z.a.abs) > 0 && !z.a.neg // 0 has no sign
		rat.go#L386: 	if len(x.a.abs) == 0 {
		rat.go#L390: 	z.a.abs, z.b.abs = z.b.abs, z.a.abs
		rat.go#L404: 	return len(x.b.abs) == 0 || x.b.abs.cmp(natOne) == 0
		rat.go#L424: 	if len(x.b.abs) == 0 {
		rat.go#L428: 		return &Int{abs: nat{1}}
		rat.go#L435: 	case len(z.a.abs) == 0:
		rat.go#L439: 	case len(z.b.abs) == 0:
		rat.go#L441: 		z.b.abs = z.b.abs.setWord(1)
		rat.go#L450: 			z.a.abs, _ = z.a.abs.div(stk, nil, z.a.abs, f.abs)
		rat.go#L451: 			z.b.abs, _ = z.b.abs.div(stk, nil, z.b.abs, f.abs)
		rat.go#L480: 	z.abs = z.abs.mul(stk, x.abs, f)
		rat.go#L492: 	a.scaleDenom(stk, &x.a, y.b.abs)
		rat.go#L493: 	b.scaleDenom(stk, &y.a, x.b.abs)
		rat.go#L503: 	a1.scaleDenom(stk, &x.a, y.b.abs)
		rat.go#L504: 	a2.scaleDenom(stk, &y.a, x.b.abs)
		rat.go#L506: 	z.b.abs = mulDenom(stk, z.b.abs, x.b.abs, y.b.abs)
		rat.go#L516: 	a1.scaleDenom(stk, &x.a, y.b.abs)
		rat.go#L517: 	a2.scaleDenom(stk, &y.a, x.b.abs)
		rat.go#L519: 	z.b.abs = mulDenom(stk, z.b.abs, x.b.abs, y.b.abs)
		rat.go#L531: 		z.a.abs = z.a.abs.sqr(stk, x.a.abs)
		rat.go#L532: 		if len(x.b.abs) == 0 {
		rat.go#L533: 			z.b.abs = z.b.abs.setWord(1)
		rat.go#L535: 			z.b.abs = z.b.abs.sqr(stk, x.b.abs)
		rat.go#L541: 	z.b.abs = mulDenom(stk, z.b.abs, x.b.abs, y.b.abs)
		rat.go#L551: 	if len(y.a.abs) == 0 {
		rat.go#L555: 	a.scaleDenom(stk, &x.a, y.b.abs)
		rat.go#L556: 	b.scaleDenom(stk, &y.a, x.b.abs)
		rat.go#L557: 	z.a.abs = a.abs
		rat.go#L558: 	z.b.abs = b.abs
		ratconv.go#L71: 		if z.b.abs, _, _, err = z.b.abs.scan(r, 0, false); err != nil {
		ratconv.go#L78: 		if len(z.b.abs) == 0 {
		ratconv.go#L96: 	z.a.abs, base, fcount, err = z.a.abs.scan(r, 0, true)
		ratconv.go#L115: 	if len(z.a.abs) == 0 {
		ratconv.go#L184: 		pow5 := z.b.abs.expNN(stk, natFive, nat(nil).setWord(Word(n)), nil, false) // use underlying array of z.b.abs
		ratconv.go#L186: 			z.a.abs = z.a.abs.mul(stk, z.a.abs, pow5)
		ratconv.go#L187: 			z.b.abs = z.b.abs.setWord(1)
		ratconv.go#L189: 			z.b.abs = pow5
		ratconv.go#L192: 		z.b.abs = z.b.abs.setWord(1)
		ratconv.go#L200: 		z.a.abs = z.a.abs.lsh(z.a.abs, uint(exp2))
		ratconv.go#L202: 		z.b.abs = z.b.abs.lsh(z.b.abs, uint(-exp2))
		ratconv.go#L205: 	z.a.neg = neg && len(z.a.abs) > 0 // 0 has no sign
		ratconv.go#L314: 	if len(x.b.abs) != 0 {
		ratconv.go#L351: 	q, r := nat(nil).div(stk, nat(nil), x.a.abs, x.b.abs)
		ratconv.go#L359: 	r, r2 := r.div(stk, nat(nil), r, x.b.abs)
		ratconv.go#L363: 	if x.b.abs.cmp(r2) <= 0 {
		ratconv.go#L417: 	d := x.Denom().abs // d >= 1
		ratmarsh.go#L24: 	buf := make([]byte, 1+4+(len(x.a.abs)+len(x.b.abs))*_S) // extra bytes for version and sign bit (1), and numerator length (4)
		ratmarsh.go#L25: 	i := x.b.abs.bytes(buf)
		ratmarsh.go#L26: 	j := x.a.abs.bytes(buf[:i])
		ratmarsh.go#L66: 	z.a.abs = z.a.abs.setBytes(buf[j:i])
		ratmarsh.go#L67: 	z.b.abs = z.b.abs.setBytes(buf[i:])